home *** CD-ROM | disk | FTP | other *** search
/ Ham Radio 2000 #2 / Ham Radio 2000 - Volume 2.iso / HAMV2 / TCP_IP / TNOS230S / SOCKET.H < prev    next >
Encoding:
C/C++ Source or Header  |  1997-09-14  |  6.4 KB  |  234 lines

  1. /* Mods by PA0GRI */
  2. #ifndef    _SOCKET_H
  3. #define    _SOCKET_H
  4.  
  5. #ifndef    _GLOBAL_H
  6. #include "global.h"
  7. #endif
  8.  
  9. #if !defined(_STDARG_H) && !defined(__dj_include_stdarg_h_)
  10. #include <stdarg.h>
  11. #endif
  12.  
  13. #ifndef    _MBUF_H
  14. #include "mbuf.h"
  15. #endif
  16.  
  17. #ifndef _PROC_H
  18. #include "proc.h"
  19. #endif
  20.  
  21. #ifndef _SOCKADDR_H
  22. #include "sockaddr.h"
  23. #endif
  24.  
  25. /* Local IP wildcard address */
  26. #ifndef INADDR_ANY
  27. #define    INADDR_ANY    0x0L
  28. #endif
  29.  
  30. /* IP protocol numbers */
  31. /* now in internet.h */
  32.  
  33. /* TCP port numbers */
  34. #define    IPPORT_ECHO    7    /* Echo data port */
  35. #define    IPPORT_DISCARD    9    /* Discard data port */
  36. #define    IPPORT_DAYTIME    13    /* Daytime data port */
  37. #define IPPORT_QUOTE    17    /* Quote of the day port */
  38. #define    IPPORT_FTPD    20    /* FTP Data port */
  39. #define    IPPORT_FTP    21    /* FTP Control port */
  40. #define IPPORT_TELNET    23    /* Telnet port */
  41. #define IPPORT_SMTP    25    /* Mail port */
  42. #define    IPPORT_TIME    37    /* Time data port */
  43. #define IPPORT_TFTPD    69    /* TFTP data port */
  44. #define    IPPORT_FINGER    79    /* Finger port */
  45. #define IPPORT_HTTP    80    /* HTTP port */
  46. #define    IPPORT_TTYLINK    87    /* Chat port */
  47. #define    IPPORT_POP    109    /* Pop port */
  48. #define    IPPORT_POP2    109    /* Pop port */
  49. #define IPPORT_POP3    110    /* Pop port */
  50. #define IPPORT_NNTP    119    /* Netnews port */
  51. #define    IPPORT_RLOGIN    513    /* Remote login */
  52. #define IPPORT_CALLDB    1235    /* Pulled out of the air GRACILIS */
  53. #define IPPORT_TRACE    1236    /* Pulled out of the air - WG7J */
  54. #define IPPORT_FTELNET    2323    /* FBB/Telnet port */
  55. #define IPPORT_NEWS     3597    /* News Tutorial */
  56. #define IPPORT_INFO     3598    /* Info Tutorial */
  57. #define IPPORT_TUTOR    3599    /* Tutorial */
  58. #define    IPPORT_CONVERS    3600    /* Converse */
  59. #define IPPORT_XCONVERS 3601    /* LZW Convers */
  60. #define IPPORT_TERM    5000    /* Serial interface server port */
  61. #define IPPORT_CBS    7373    /* KO4KS CallBook Server port */
  62. #define IPPORT_X    7388    /* X server control port (out of the air) */
  63. #define    IPPORT_ROUTE    8873    /* Dynamic route server */
  64.  
  65. /* UDP port numbers */
  66. #define    IPPORT_DOMAIN    53
  67. #define    IPPORT_BOOTPS    67    /* bootp server */
  68. #define    IPPORT_BOOTPC    68    /* bootp client */
  69. #define    IPPORT_RWHO    513
  70. #define    IPPORT_RIP    520
  71. #define    IPPORT_TIMED    525    /* Time daemon */
  72. #define    IPPORT_REMOTE    1234    /* Pulled out of the air */
  73.  
  74. #ifndef AF_INET
  75. #define    AF_INET        0
  76. #define    AF_AX25        1
  77. #define AF_NETROM    2
  78. #define    AF_LOCAL    3
  79.  
  80. #define    SOCK_STREAM    0
  81. #define    SOCK_DGRAM    1
  82. #define    SOCK_RAW    2
  83. #define SOCK_SEQPACKET    3
  84. #endif
  85.  
  86. /* Socket flag values - controls newline mapping */
  87. #define    SOCK_BINARY    0    /* socket in raw (binary) mode */
  88. #define    SOCK_ASCII    1    /* socket in cooked (newline mapping) mode */
  89. #define    SOCK_QUERY    2    /* Return setting without change */
  90.  
  91. /* Socket noblock values, set with sockblock() */
  92. #define SOCK_BLOCK      0
  93. #define SOCK_NOTXBLOCK  1
  94. #define SOCK_NORXBLOCK  2
  95.  
  96.  
  97. /*
  98.  * Avoid collisions with the C library's socket interface.  We may want to use
  99.  * that in the future, anyway.  (Something like WAMPES tcpgate, but with some
  100.  * protections.)
  101.  */
  102.  
  103. #define accept j_accept
  104. #define bind j_bind
  105. #define connect j_connect
  106. #define getpeername j_getpeername
  107. #define getsockname j_getsockname
  108. #define listen j_listen
  109. #define setflush j_setflush
  110. #define shutdown j_shutdown
  111. #define socket j_socket
  112. #define socketpair j_socketpair
  113. #define recv j_recv
  114. #define recvfrom j_recvfrom
  115. #define send j_send
  116. #define sendto j_sendto
  117.  
  118.  
  119. #ifdef UNIX
  120. #define EABORT ECONNRESET
  121. #ifdef linux
  122. #define EALARM ETIME
  123. #else
  124. #define EALARM ETIMEDOUT
  125. #endif
  126.  
  127. #else
  128.  
  129. #undef EMFILE
  130. #define    EMFILE    1
  131. #undef EBADF
  132. #define    EBADF    2
  133. #undef EINVAL
  134. #define    EINVAL    3
  135. #define    ESOCKTNOSUPPORT    4
  136. #define    EAFNOSUPPORT    5
  137. #define    EOPNOTSUPP    6
  138. #undef EFAULT
  139. #define    EFAULT        7
  140. #define    ENOTCONN    8
  141. #define    ECONNREFUSED    9
  142. #define EAFNOSUPP    10
  143. #define    EISCONN        11
  144. #define    EWOULDBLOCK    12
  145. #undef EINTR
  146. #define    EINTR        13
  147. #define    EADDRINUSE    14
  148. #undef ENOMEM
  149. #define    ENOMEM        15
  150. #define EMSGSIZE    16
  151. #define    EALARM        17
  152. #define    EABORT        18
  153.  
  154. #endif
  155.  
  156. /* In socket.c: */
  157. extern int Axi_sock;    /* Socket listening to AX25 (there can be only one) */
  158.  
  159. int accept (int s,char *peername,int *peernamelen);
  160. int bind (int s,char *name,int namelen);
  161. int close_s (int s);
  162. int connect (int s,char *peername,int peernamelen);
  163. void freesock (struct proc *pp);
  164. int getpeername (int s,char *peername,int *peernamelen);
  165. int getsockname (int s,char *name,int *namelen);
  166. int listen (int s,int backlog);
  167. int recv_mbuf (int s,struct mbuf **bpp,int flags,char *from,int *fromlen);
  168. int send_mbuf (int s,struct mbuf *bp,int flags,char *to,int tolen);
  169. int setflush (int s,int c);
  170. int shutdown (int s,int how);
  171. int socket (int af,int type,int protocol);
  172. void sockinit (void);
  173. int sockkick (int s);
  174. int socklen (int s,int rtx);
  175. struct proc *sockowner (int s,struct proc *newowner);
  176. int usesock (int s);
  177. int socketpair (int af,int type,int protocol,int sv[]);
  178. int socketalive (int s);
  179.  
  180. /* In sockuser.c: */
  181. int keywait (const char *prompt,int flush);
  182. int recv (int s,char *buf,int len,int flags);
  183. int recvchar (int s);
  184. int recvfrom (int s,char *buf,int len,int flags,char *from,int *fromlen);
  185. int nb_recvline (int s,unsigned char *buf,unsigned len);
  186. int recvline (int s,unsigned char *buf,unsigned len);
  187. int rrecvchar (int s);
  188. int send (int s,char *buf,int len,int flags);
  189. int sendto (int s,char *buf,int len,int flags,char *to,int tolen);
  190. int seteol (int s,const char *seq);
  191. int sockmode (int s,int mode);
  192. void tflush (void);
  193. /* declared in global.h
  194.     int tprintf (const char *fmt,...);
  195.  */
  196. int tputc (unsigned char c);
  197. int getblock (int s);
  198. void traceprintf (FILE *fp, const char *fmt, ...)
  199. #ifdef UNIX
  200. #ifdef __GNUC__
  201.     __attribute__ ((format (printf, 2, 3)))
  202. #endif
  203. #endif
  204.     ;
  205. int tcmdprintf (const char *fmt, ...)
  206. #ifdef UNIX
  207. #ifdef __GNUC__
  208.     __attribute__ ((format (printf, 1, 2)))
  209. #endif
  210.     ;
  211. int tfprintf (FILE *fp, const char *fmt, ...)
  212. #ifdef __GNUC__
  213.     __attribute__ ((format (printf, 2, 3)))
  214. #endif
  215. #endif
  216.     ;
  217. int usflush (int s);
  218. int usprintf (int s,const char *fmt,...);
  219. int usputc (int s,const unsigned char c);
  220. int usputs (int s,const char *x);
  221. int usputbuf (int s,const unsigned char *x, int len);
  222. int usvprintf (int s,const char *fmt, va_list args);    /*lint !e49 !e601 !e10 !e49 */
  223. int nullsocket (int s);
  224.  
  225. /* In file sockutil.c: */
  226. char *psocket (void *p);
  227. const char *sockerr (int s);
  228. const char *sockstate (int s);
  229.  
  230. /* In mailbox.c: */
  231. extern char Nosock[];
  232.  
  233. #endif    /* _SOCKET_H */
  234.